<?php
/**
 *身份证识别 WebAPI 接口调用示例 接口文档（必看）：https://doc.xfyun.cn/rest_api/%E8%BA%AB%E4%BB%BD%E8%AF%81%E8%AF%86%E5%88%AB.html
 *webapi OCR服务参考帖子（必看）：http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=39111&highlight=OCR
 *(Very Important)创建完webapi应用添加身份证识别之后一定要设置ip白名单，找到控制台--我的应用--设置ip白名单，如何设置参考：http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=41891
 *图片属性：仅支持jpg格式，推荐 jpg 文件设置为：尺寸 1024×768，图像质量 75 以上，位深度 24。base64位编码之后大小不超过4M
 *错误码链接：https://www.xfyun.cn/document/error-code (code返回错误码时必看)
 *OCR错误码400开头请在接口文档底部查看
 */
class test{
	function xfyun($imgurl){
		    $daytime=strtotime('1970-1-1T00:00:00 UTC');
			// 身份证识别webapi接口地址
		    $api = "http://webapi.xfyun.cn/v1/service/v1/ocr/idcard";
			// 应用APPID（必须为webapi类型应用，并开通身份证识别服务，参考帖子如何创建一个webapi应用：http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=36481）
		    $XAppid = "d8a2dbe1";
			// 接口密钥（webapi类型应用开通身份证识别服务后，控制台--我的应用---身份证识别---相应服务的apikey）
		    $Apikey = "4783c08343d74418fc55b9e08f29dce6";
		    $XCurTime =time();
		    $XParam ="";
		    $XCheckSum ="";		    
		    $Param= array(
				"engine_type"=>"idcard",
				"head_portrait"=>"0",
		    );
			// 上传图片地址
		   $image=file_get_contents($imgurl);
		   $image=base64_encode($image);
		    
		    $Post = array(
			  'image' => $image,
			);

		    $XParam = base64_encode(json_encode($Param));
		    $XCheckSum = md5($Apikey.$XCurTime.$XParam);
		    $headers = array();
		    $headers[] = 'X-CurTime:'.$XCurTime;
		    $headers[] = 'X-Param:'.$XParam;
		    $headers[] = 'X-Appid:'.$XAppid;
		    $headers[] = 'X-CheckSum:'.$XCheckSum;
		    $headers[] = 'Content-Type:application/x-www-form-urlencoded; charset=utf-8';
		    return $this->http_request($api, $Post, $headers);
		}

		/**
		 * 发送post请求
		 * @param string $url 请求地址
		 * @param array $post_data post键值对数据
		 * @return string
		 */
		function http_request($url, $post_data, $headers) {		 
		  $postdata = http_build_query($post_data);
		  $options = array(
		    'http' => array(
		      'method' => 'POST',
		      'header' => $headers,
		      'content' => $postdata,
		      'timeout' => 15 * 60 // 超时时间（单位:s）
		    )
		  );
		  $context = stream_context_create($options);
		  $result = file_get_contents($url, false, $context);
		// 错误码链接：https://www.xfyun.cn/document/error-code (code返回错误码时必看)OCR错误码400开头请在接口文档底部查看	
		  return $result; 
			
		  //return "success";
		}
}

?>